Cook spaghetti according to package directions. Drain and set aside.
In a large skillet, heat the olive oil. Add the shrimp and season with salt and pepper. Arrange in a single layer and cook 2-3 minutes until shrimp start turning opaque. Flip and cook 1-3 minutes more, until cooked through. Remove from the skillet, cover, and keep warm.
Place cauliflower florets in a pot with water, bring to boil and cook for 7-10 minutes, or until cauliflower is fork tender. Remove from heat and drain. Reserve some cooking water.
Meanwhile, melt the butter in a medium pan over medium-high heat. Add the onion and garlic and cook, stirring occasionally, until they start to soften, about 3-4 minutes. Add the heavy cream and Parmesan and bring to a boil. Cook for about 1 minute, until the cheese melts. Remove from heat.
In a food processor, combine cooked cauliflower with onion mixture and 1 cup almond milk until it is very smooth. Transfer the sauce into a large pan and bring to boil. Season with salt and pepper, to taste. If the mixture is too thick, add more almond milk.
Add the chopped kale and stir until incorporated. Cook, stirring, a few minutes more.
Add the cooked pasta and mix together until covered with the sauce. Add the shrimp and toss well. Serve with additional freshly grated Parmesan cheese, if desired. Enjoy!