To add some information here, you would have to specify a unique chain index for each chain when calling pm.sample. This is relatively easy, as you could do something like this:
chains = [pm.sample(chain_idx=i) for i in range(n_chains)]
However, even if you do this, you cannot merge them currently as you will receive an error about trying to set an attribute:
i~/anaconda3/lib/python3.6/site-packages/pymc3/backends/base.py in merge_traces(mtraces)
550 raise ValueError("Chains are not unique.")
551 base_mtrace._straces[new_chain] = strace
552 base_mtrace.report = merge_reports([trace.report for trace in mtraces])
553 return base_mtrace
554
AttributeError: can't set attribute