Preheat oven to 350° F.
Prepare meatballs: Add the ground chicken, almond flour, grated parmesan, flax seed, garlic, salt, pepper, Italian seasoning, and red pepper flakes to a mixing bowl. Mix together. I used a small measuring spoon as a scoop to get a small amount of mixture in my (gloved) hand. Then roll the meatballs and place them on a sheet pan lined with parchment paper. Place in oven, checking after 15 minutes. Remove when meatballs are cooked.
Or, cook the meatballs in the large pot you will be using to cook your soup. Heat pot (a Dutch-Oven is a good choice, and can be the same one you will use to cook the soup) over medium-high heat on stove. Once hot, spray the bottom of the pan with olive oil and then add a few of the prepared chicken meatballs. Cook the meatballs for 1-2 minutes per side until they are golden brown. Remove the meatballs from the Dutch oven and set aside. Continue this process in batches until the meatballs have browned. I find the oven easier.
Make the soup: Spray olive oil on the bottom of the Dutch oven and then add the onion, carrot, celery, garlic, Italian seasoning and salt. Sauté the veggies for 4-5 minutes until softened. Put in a blender along with a cup of the chicken broth and ½ the cannellini beans, and pulse a few times. Put back in pot. Next, add the chicken balls, bay leaf, lemon juice, remaining cannellini beans, and chicken broth, parmesan rind and meatballs to the pot (or put in a crock pot if you want to serve later).
Bring the soup to a boil and then reduce the heat to a simmer. Cover and let the soup simmer for 15-20 minutes. Remove the parmesan rind and bay leaf. Add in the spinach and stir until wilted. You can also put in a crock pot, cook on low until you're ready to eat.
Ladle the soup into bowls and serve with parmesan cheese and fresh chopped parsley.