In Niagara is there an easy way to do spawn rate by distance?
The simplest way to control spawn rate by distance is to use scalability in Emitter State this is used to cull spawn rate at distance E.g. LODs but with the curve as shown in the image you have a lot of control over the range you define, if you want greater control you would have to create a module script and utilize the engine provided LOD Distance Variable for many purposes and modules to adjust color, speed, rotation and so on.
.