With a sharp knife, carefully cut the spaghetti squash in half lengthwise. Scoop out the seeds with a spoon and discard. Lightly drizzle each half with olive oil. Place one half in a microwavable safe baking dish facing down and add 1/2 inch of water. Microwave for 12 minutes or until softened. Repeat with the other half. If you have a large enough dish, you could cook both at once. Let cool for 10 minutes then carefully remove from the microwave.
Once the spaghetti squash is cool enough to work with, use a fork and scrape the spaghetti squash out. Place in a bowl or baking tray and set aside.
Preheat oven to 350 degrees F. In a large pan on medium heat, add olive oil and add onions. Saute for a few minutes until softened. Add garlic and sautee for another minute.
Add the cream cheese and milk and stir until the cream cheese had melted. Let simmer for 3 minutes, stirring often.
Add the mozzarella cheese, parmesan cheese, salt, and pepper, lemon juice, and continue to stir until the cheese is completely melted and the mixture has thickened.
Add the spinach and artichoke hearts and cook until the spinach has wilted and the mixture is completely combined.
Add the spaghetti squash to the cheesy mixture and stir until completely coated and combined.
Add the coated spaghetti squash back to the spaghetti squash shell, top with more mozzarella and parmesan cheese, place in the oven until cheese has melted, about 10-15 minutes. Serve immediately and enjoy!