This is called application or process checkpointing. There are/were lots of attempts to get it working under linux, some are more some less complete. It was a hot topic several years ago, but the interest sort of fizzled out since then because virtual machines sovle the same problem. A vm has more overhead but freezing a vm is also much more reliable.
This wikipedia article mentions few approaches: http://en.wikipedia.org/wiki/Application_checkpointing
This page has many more projects, though most are probably dead by now: http://checkpointing.org/
Both are incomplete, googling "linux checkpointing" returns things not mentioned in either, like https://ckpt.wiki.kernel.org/index.php/Main_Page