I know golang is very good at concurrency with its built-in support, but seems to me they are not distributed, so what would be the framework/library allow us to write producers/consumers applications, in a distributed environment.
If you want to use Go's channel concepts in a distributed program, perhaps check out the Go Circuit framework.
It provides a framework for running multi-process programs (possibly spread over multiple machines), allowing you to use channels to communicate between those processes.