This happens when two scripts reference each other. So let's say you have script A.gd
and script B.gd
A.gd:
var B = get_node("B")
B.some_var = 1
B.gd
var A = get_node("A")
A.some_other_var = 2
This will never work. Then will start calling each other, then calling the other one, then back to the first one, forever in a loop and crash your computer (the cyclic error stops the crash).
When you use an Autoload (Singleton) it is implicitly available to all other scripts. Meaning if the Autoload calls one of those other scripts, depend on how you have it set up, that could trigger it.
Two ways to fix this is to never reference other scripts in the Autoload, and simply use it for storage or independent functions.
Or you could use signals as a way to pass messages back and forth. However, the Autoload still can't know about the other scripts, so you have to send signals both ways (basically the autoload will act as a message bus or dispatcher).