Supplier query is executed in a child process, but it still blocks the UI thread.
Child and parent processes communicate by sending messages. Messages are encoded
using Google's Protobuf. This funcionality can be extracted into a separate gem
later on, as it is useful and general enough. Work in progress.
UI thread is still blocked until all data is processed from a child process.