Cut the spaghetti squash in half and scrape out the seeds with a spoon.
Place them face down on a baking sheet or in a large baking dish with ¼ inch of water.
Place in the oven and cook 30 minutes or until soft when poked with a fork.
While the squash is cooking, butterfly the chicken by cutting it in half lengthwise.
Pound it with a meat hammer or the bottom of a cast iron pan until it is ¼ to ½ inch thick.
In a large skillet, place the asparagus in about ¼ inch of water and cook over high heat until the asparagus is bright green and starting to soften. The water should evaporate completely and when it has, add 1 tablespoon of butter and sprinkle with some sea salt.
Remove the asparagus from the pan and set aside.
In the same pan, cook the bacon until it is crispy.
Remove the bacon and cook the chicken in the bacon grease, sprinkling each side with some of the sea salt, pepper, Italian seasoning, and garlic powder.
When chicken has cooked through, remove it and set it aside.
Dice the onion and cook it in the remaining bacon grease until it is starting to soften.
Add the spinach and extra butter if needed and cook until the spinach is barely wilted.
Add the cream if using and about ¼ teaspoon of the salt, pepper, Italian seasoning, and garlic powder.
At this point, the spaghetti squash should be soft so remove it from the oven and scrape out the insides with a fork.
To serve, put some spaghetti squash on a plate, top with some wilted spinach, then a piece of chicken, some crumbled bacon, and the asparagus. Top with Parmesan if using.