Rasterio 1.0.18
Rasterio 1.0.14 made the package more correct in how it treats the spatial reference systems we use to share and analyze gridded spatial data, but it also introduced several bugs. I made three releases this week, two of them to fix regressions caused by 1.0.14. "EPSG:3857" and "+init=epsg:3857" are interpreted differently by GDAL and in 1.0.14 we accidentally flipped from the former to the latter, obsolete representation of EPSG spatial reference system number 3857.
1.0.14 also broke the Python pickle protocol for CRS objects, something we didn't know until users who have been sending dataset profiles, which contain a CRS object, between processes using the multiprocessing module ran into exceptions. There is a workaround for this and it will be fixed next week in Rasterio 1.0.19. In case you're wondering what CRS pickle data looks like, it's just a thin wrapper around a WKT string.
>>> from rasterio.crs import CRS >>> import pickle >>> pickle.dumps(CRS.from_epsg(3857)) b'\x80\x03crasterio.crs\nCRS\nq\x00)\x81q\x01X\xa4\x02\x00\x00PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]]q\x02b.'
Update to 1.0.18 as soon as you can and get the benefits of 1.0.14 without the bugs.