Preheat the oven to 350 degrees F. Lightly grease a 9 or 10-inch round ovenproof casserole and set aside.
Bring a medium pot of water to a boil. Add the spinach in batches and cook until wilted, 2 to 3 minutes. Remove and refresh under cold running water. Squeeze to remove all excess water and chop. Set aside. In a medium pot, melt the butter over medium-high heat. Add the onions and cook, stirring, for 3 minutes. Add the garlic, salt, pepper, and cayenne, and cook, stirring, for 1 minute. Add the flour and cook, stirring constantly, to make a light roux, about 2 minutes. Add the milk and cream in a steady stream, and cook, stirring constantly, until thick and creamy, 2 to 3 minutes. Add the cooked spinach and lemon juice, and stir to incorporate. Add the shrimp, cubed and grated cheeses, artichoke hearts, and bacon, and stir well. Remove from the heat and pour into the prepared dish. Top with the Parmesan and bake until bubbly, about 10 minutes. Remove from the oven and serve hot with chips.