Cut the squash in half lengthwise; remove and discard seeds.
Bake on a baking sheet until fork tender, about 1 hour.
Separate the strands of squash with a fork and place in a medium bowl; discard shells.
Maintain the oven temperature.
Heat butter in a large saucepan over medium heat.
Add onions and garlic and cook about 2 minutes.
Stir in flour. Reduce heat to low and cook, stirring continually 3 - 4 minutes.
Add milk and chicken broth, turn heat back to medium, and whisk until it comes to a boil and becomes smooth and thick, about 2 minute. Season with salt and pepper.
Once it becomes thick, remove from heat, add Italian cheese and mix well until cheese is melted.
Add cooked spaghetti squash and spinach.
Pour into a baking dish and sprinkle parmesan cheese on top.