Dechunk result if necessary

Fixes #2710. Implementation is based on OP @marcuslinke 's workaround.
Since this method does awaits and operates synchronously, it would result in much simpler code if you didn't  flatmap the result, but just await for it, then synchronously check if its chunked or not, and then dechunk in this method.