If you're happy using the Terminal, then you could try the following command loop:
for f in *.flac; do ffmpeg -i "$f" -vf "crop=((in_w/2)*2):((in_h/2)*2)" -c:a alac "${f%.flac}.m4a"; done
This will simply cycle through all the .flac files sitting in the current directory and convert them all to .alac until they're all done. I can confirm that this works in Linux where ffmpeg is freely available in the repositories. For OSX, you can install ffmpeg via homebrew, and there are also static builds for Windows, OSX and Linux listed on the ffmpeg website.
This will preserve the metadata, but the way that M4A stores cover images is fundamentally different from the way that FLAC (and most other audio formats) do it. Unfortunately, FFmpeg is currently unable to handle this. Fortunately, you can extract the cover as a jpeg image on the same step as transcoding the audio, and then use another command-line tool (AtomicParsley) to merge the cover into the M4A.
ffmpeg -i input.flac -vf "crop=((in_w/2)*2):((in_h/2)*2)" -c:a alac output.m4a cover.jpg
AtomicParsley output.m4a --artwork cover.jpg --overWrite
This can similarly be put into a for loop; the &&
s mean that the next command will only be performed if the previous command succeeds.
for f in *.flac; do ffmpeg -i "$f" -vf "crop=((in_w/2)*2):((in_h/2)*2)" -c:a alac "${f/%flac/m4a}" "${f/%flac/jpg}" && \
AtomicParsley "${f/%flac/m4a}" --artwork "${f/%flac/jpg}" --overWrite && \
rm "${f/%flac/jpg}"; done