Place the spaghetti squash in a large stockpot and cover with water. Bring to a boil and reduce heat to simmer.
Simmer, partially covered, for about 40 minutes.
Remove the squash. When the squash is cool enough to handle, slice the squash lengthwise. Using a spoon, scrape out the seeds from each half and discard.
Using a fork, scrape the spaghetti squash strands into a bowl, separating the strands into spaghetti-like strands. Set aside. Discard the rind of the squash. (Consider placing the shredded strands in an oven set to “warm” or about 170°F until needed.)
Place the olive oil in a large saucepan over medium-high heat.
Add the onions and cook, stirring frequently, for 10 minutes, adjusting the heat so that the onions are no more than lightly browned. (Note that this sauce should never boil or even simmer throughout cooking.)
Add the curry powder, garam masala, cumin, and cayenne, and cook, stirring constantly, for about 2 minutes.
Add the flour or garbanzo flour and cook, stirring constantly, until just blended – about 30-60 seconds.
Add the vegetable stock and salt and stir until the sauce begins to thicken.
Add the coconut milk, stir thoroughly, and cook for another 5-7 minutes until the sauce thickens more.
Add the shrimps and goat cheese and cook, stirring gently and occasionally, until the shrimps are cooked through and the goat cheese is melted: 7-10 minutes.
Divide the spaghetti squash among four plates and top with equal amounts of the shrimp and sauce. Sprinkle the cashews and basil over the top and serve.