throw error when trying to run two streams in one process
Because EventMachine uses a single special "reactor thread" to run things and handle events, and there can be only one such thread at a time, you can't run two completely separate such setups in one process. You could run the second Stream inside the existing reactor thread, but this can lead to some unexpected behavior, like Stream#start method exiting immediately when you expect it to block (since the current thread isn't blocked to run the reactor, but simply passes the proc to the other thread), or different Streams blocking each other if processing events takes a bit longer than expected (since the processing of both would happen on the same thread, unless work is explicitly done in the background).
If you want to do it anyway and you know what you're doing, you know what to do.