Raising a useful error and adding a speccific tests

Fixes #506
What about this?

python
```if not np.all([isinstance(m.get(header), Iterable) for m in md]))```

`.get` will default to return `None` which is not `Iterable`