"to pickle" in the jargon of Python and other programming languages is the action of turning an object (in the CS sense of object) into a sequence of bytes. In the words of the Python reference:

The pickle module implements a fundamental, but powerful algorithm for serializing and de-serializing a Python object structure. ''Pickling'' is the process whereby a Python object hierarchy is converted into a byte stream, and ''unpickling'' is the inverse operation, whereby a byte stream is converted back into an object hierarchy. Pickling (and unpickling) is alternatively known as ''serialization'', ''marshalling,''3.2 or ''flattening'', however the preferred term used here is ''pickling'' and ''unpickling'' to avoid confusing.

In practical terms, suppose that you have a program running on a certain machine. This program has created an object that includes, let us say, an array of 100 floating point numbers. At a certain point, the program wants to terminate. But before ceasing to be, it must store those numbers on a disk. Or it must send them to a computer in Australia.

The problem then becomes, how to "dump" that object and its contents in a format that, in the future, another program will be able to read and reconstruct univocally? This may seem trivial until you think of all the horrible intricacy of number representation, and circular pointers.