use `@use_threads` configuration

This allows the user to call `#evolve` without using multithreading when they specify the `:use_threads` parameter